package com.cx.common;

/**
 * 描述：API 统一返回状态码
 */
public enum ResultCode {

    /* 成功状态码 */
    SUCCESS(0, "操作成功"),
    SYSTEM_INNER_ERROR(1, "系统繁忙，请稍后重试"),

    /**
     * 常规错误
     */
    DOCUMENT_HAS_EXPIRED(10000, "该数据已过期"),
    SAVE_ERROR(10001, "保存异常"),
    UPDATE_ERROR(10002, "更新异常"),
    SELECT_ERROR(10003, "查询异常"),
    DELETE_ERROR(10004, "删除异常"),
    NOT_CODE(10005, "记录不存在"),
    SUPERIOR_MENU_ERROR(10012, "上级菜单不能为自身"),
    USER_NOT_LOGGED_IN(10101, "用户未登录"),
    USER_LOGIN_ERROR(10102, "账号不存在或密码错误"),
    USER_ACCOUNT_FORBIDDEN(10103, "账号已被禁用"),
    USER_NOT_EXIST(10104, "用户不存在"),
    USER_HAS_EXISTED(10105, "用户已存在"),
    AUTH_TOKEN_EXPIRED(10404, "账号已过期，请重新登录"),
    MALFUNCTION(10106, "故障"),
    ODS_SERVE_ERROR(10107, "ODS服务异常"),
    SYSTEM_UNAUTHORIZED(10402, "权限不足，禁止操作"),


    // 参数错误
    PARAM_IS_INVALID(10006, "参数无效"),
    PARAM_IS_BLANK(10007, "参数为空"),
    PARAM_TYPE_BIND_ERROR(10008, "参数类型错误"),
    PARAM_NOT_COMPLETE(10009, "参数缺失"),
    EMPTY_DATA(10010, "没有数据处理,至少选择一条记录!"),
    PARAM_IS_ERROR(10011, "参数错误"),

    //文件类错误 10500-10600
    FILE_LENGTH_ERROR(10500, "文件长度异常"),
    FILE_NAME_ERROR(10501, "文件名称不合法"),
    FILE_NOT_EXIST(10502, "文件不存在"),
    FILE_UPLOAD_ERROR(10503, "文件上传异常"),
    FILE_SIZE_BIG(10504, "文件大小超过限定大小"),

    /**
     * 保护：20000-29999
     */
    PROTECTED_CLIENT_HAS_UPPER_LIMIT(20000, "保护的主机数超出限制"),
    PROTECTED_OPEN_ISCSI_FAILE(20001, "Iscsi服务打开失败"),
    PROTECTED_ADD_ODS_SERVE_FAILE(20002, "添加ods服务器失败"),
    PROTECTED_ADD_SCHEDULER_FAILE(20003, "添加快照策略失败"),
    PROTECTED_CLIENT_IS_EXIST(20004, "主机已经在保护中"),
    PROTECTED_ADD_MIRROR_DISK_FAILE(20005, "添加镜像盘失败"),
    PROTECTED_TASK_IS_EXIST(20006, "存在进行中的保护任务"),
    PROTECTED_SCHEDULER_IS_EXIST(20007, "主机策略已存在"),
    PROTECTED_ADD_DISK_FAILE(20008, "创建磁盘保护失败"),
    PROTECTED_DISK_RESOURCE_NO_EXIST(20009, "磁盘对应的逻辑资源不存在"),
    PROTECTED_ADD_GROUP_FAILE(20010, "逻辑资源加入组失败"),
    PROTECTED_SAN_NO_EXIST(20011, "San客户端不存在"),
    /**
     * 恢复：30000-39999
     */
    RECOVER_IP_EXIST_MOUNT_TASK(30000, "此ip存在挂载任务，请先取消上次挂载"),
    RECOVER_ASSIGN_SNAPSHOT_ERR(30001, "分配快照错误"),
    /** 监控：40000-49999 */
    /** 告警：50000-59999 */

    /** 有其他的往后加就行 */

    /**
     * 许可 60000-69999
     */
    LICENSE_EXPIRED(60000, "许可到期"),
    LICENSE_ERROR(60001, "许可有误"),
    LICENSE_NOT(60002, "许可记录不存在"),

    AUTH_TOKEN_PARSE_FAIL(10405, "令牌缺失"),
    ;

    private Integer code;

    private String msg;

    ResultCode(Integer code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public Integer code() {
        return code;
    }

    public String msg() {
        return msg;
    }
}
